<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
說明
onCreate()
在第一次創建活動時調用, 下一步為onStart()。
onRestart()
停止之後,再次開始之前調用,下一步為onStart()。
onStart()
使用者畫面可見時調用。如果進入前台,下一步 onResume()。
onResume()
開始與用戶互動時調用。位於最上層與使用者互動,下一步onPause()。
onPause()
當失去前台狀態,不再可聚焦或在到停止/隱藏或破壞狀態之間的調用。 該活動仍對使用者可見,保持其視覺狀態並繼續更新UI。 此方法的實現必須非常快,因為在此方法返回之前,下一個活動將不會恢復。
如果活動返回到最前一頁,下一步為 onResume(),如果使用者看不到該頁面,下一步為onStop()。
onStop()
當不再對使用者可見。 如有新的活動正在最上面開始,或者一個現有的活動正在該活動的前面,或者該活動正在被銷毀。 通常用於停止動畫和刷新UI等。如果此活動使用者可以返回,下一步為onRestart(),或者如果此活動將要消失,下一步為onDestroy()。
動手試看看
Activity啟動時順序為
onCreate -> onStart -> onResume
Close App
onPause -> onStop -> onDestroy
Switch between Apps
onCreate -> onStart -> onResume -> onStop
Open facebook messenger
onCreate -> onStart -> onResume( 仍是onResume 沒有改變狀態)
Lock and unlock screen
onPause() ->onStop ->onRestart()-> onStart -> onResume
提醒
override fun onDestroy() {
//code 會執行
super.onDestroy()
//code 有些 OS 寫這不會執行
}
reference https://developer.android.com/reference/android/app/Activity